package bean;

import java.util.Collection;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpSession;

import psc.model.base.acesso.Cliente;
import psc.model.base.cliente.Conta;
import psc.model.base.transacao.Liberacao;
import facade.FacadeConta;
import facade.FacadePagamento;

@ManagedBean
@SessionScoped
public class PagamentoBean {

	public PagamentoBean() {
		liberacao = new Liberacao();
		facadePagamento = new FacadePagamento();
		conta = new Conta();
	}

	private Conta conta;

	public Conta getConta() {
		return conta;
	}

	public void setConta(Conta conta) {
		this.conta = conta;
	}

	private Liberacao liberacao;
	private FacadePagamento facadePagamento;

	public Liberacao getLiberacao() {
		return liberacao;
	}

	public void setLiberacao(Liberacao liberacao) {
		this.liberacao = liberacao;
	}

	public FacadePagamento getFacadePagamento() {
		return facadePagamento;
	}

	public void setFacadePagamento(FacadePagamento facadePagamento) {
		this.facadePagamento = facadePagamento;
	}

	public void realizarPagamento() {
		try {
			facadePagamento.realizarPagamento(liberacao);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	public Collection<Conta> contas() {
		FacadeConta facadeConta = new FacadeConta();
		Conta conta = new Conta();
		FacesContext facesContext = FacesContext.getCurrentInstance();
		HttpSession session = (HttpSession) facesContext.getExternalContext()
				.getSession(false);

		Cliente cliente = (Cliente) session.getAttribute("usuario");
		conta.setCliente(cliente);
		return facadeConta.consultarContas(conta);
	}
}
